Web API初体验 | 您所在的位置:网站首页 › tapd登录 python › Web API初体验 |
网上有很多API接口,只要简单的调用就可以获取到我们想要的信息,比如天气预报、每日一句等等。包括一些抢券活动,一般也是有API可以直接调用的。 最开始调用自己的API函数应该是在腾讯云函数的时候,自己写了点破代码,设置了API网关,就可以用浏览器一键调用并返回数据,还挺好玩。 这次就多了解了解并尝试自己搭建WebApi服务。 01 — WebApi是什么 ASP.NET Web API 是一种框架,用于轻松构建可以由多种客户端(包括浏览器和移动设备)访问的 HTTP 服务。ASP.NET Web API 是一种用于在.NET Framework 上构建 RESTful 应用程序的理想平台。 可以把WebApi看成Asp.Net项目类型中的一种,其他项目类型诸如我们熟知的WebForm项目,Windows窗体项目,控制台应用程序等。 WebApi类型项目的最大优势就是,开发者再也不用担心客户端和服务器之间传输的数据的序列化和反序列化问题,因为WebApi是强类型的,可以自动进行序列化和反序列化。Web API最重要的是可以构建面向各种客户端的服务。 02 — HTTP请求方法 HTTP/1.1协议中共定义了八种请求方法,来以不同方式操作指定的资源: 1. GET 请求指定的页面信息,并返回实体主体。用于从服务器端获取数据,且不应该对服务器端有任何操作和影响。 2. POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改,对服务器端产生影响。 3. PUT 从客户端向服务器传送的数据取代指定的文档的内容,意即用于向服务器端更新一条数据,对服务器端产生影响 (也可创建一条新的数据但不推荐这样用)。 4. DELETE 请求服务器删除指定的页面,对服务器端产生影响。 5. HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 6. OPTIONS 允许客户端查看服务器的性能。 7. CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 8. TRACE 回显服务器收到的请求,主要用于测试或诊断。 这样,前面四种请求方法刚好可对应于对数据的查询,添加,修改,删除。WebApi也推荐如此使用。在WebApi项目中,我们请求的不再是一个具体页面,而是各个控制器中的方法。Get类型的请求发送给以Get开头的方法去处理,Post类型的请求交给Post开头的方法去处理,Put和Delete同理。 而以Get开头的方法有好几个也是可以的,此时如何区分到底交给哪个方法执行呢?这就取决于Get开头的方法们的传入参数了,一会儿在代码中可以分辨。 03 — Python实践——FastAPI FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。关键特性: 快速:可与NodeJS和Go并肩的极高性能(归功于Starlette和 Pydantic),最快的 Python web 框架之一。 用Python编写个简易的代码,首先pip uvicorn和fastapi两个库,分成两个文件,一个文件名随意,作用是启动服务,简称A文件;一个是api功能代码,简称B文件。A文件代码如下: import uvicorn if __name__ == '__main__': uvicorn.run(app='webapi:app', host='127.0.0.1', port=3000, reload=True)代码中webapi:app为B文件的文件名和服务名称,所以B文件的文件名为webapi.py,里面的服务对象名称为app,并设置了IP地址和端口。B文件的代码如下: from fastapi import FastAPI import time,requests app = FastAPI() @app.get("/") def info(): return {"key": "欢迎关注【偶尔敲代码】"} @app.get("/time") def info(): t = int(time.time()) return {"time": str(t)} # @app.get("/yy") def info(): r = requests.get("https://apis.jxcxin.cn/api/yiyan?type=json") print(r) return r.textB文件的代码中定义了3个api功能,分别是"/"、"/time"和"/yy"。 将AB两个文件运行起来,就相当于把webapi服务启动了。这时结合我们A文件定义的IP地址和端口,在浏览器上直接访问:http://127.0.0.1:3000 可触发api中的"/"功能,会按照B代码中的设定返回结果。 在浏览器上直接访问http://127.0.0.1:3000/time,可触发api中的"/time"功能: 在浏览器上直接访问http://127.0.0.1:3000/yy,可触发api中的"/yy"功能: 等调试好后,将上面的文件部署在服务器上,并修改相应的IP地址为服务器公网IP,开放对应的端口号即可实现访问。 04 — 易语言实践——WebAPI框架 这是网上找的一个WebAPI框架,我只要写相关API功能的插件即可,就跟上面Python的B文件一个意思,还是挺方便的。功能大概就是这样,服务器运行框架,然后加载自己的插件,在插件中定义好自己的调用方法。 比如我写了个小视频去水印的插件,按下面的访问方式去调用它 在浏览器输入地址:http://203.33.224.86:3777/qushuiyin?url=https://v.kuaishou.com/JtE2mj,访问后会返回一个去水印后的视频地址 再访问这个地址,可以打开视频了,如下图,可以下载了。(我上面的服务器接口还可以白嫖2天就到期了 ,只做了抖音和快手的去水印) 总结: 1. WebApi这东西对于跨平台很方便,只要会调用http命令即可; 2. 自己搭建需要有自己的服务器 - End - |
CopyRight 2018-2019 实验室设备网 版权所有 |